home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Softshoe / Lisa's Mac Parts / Views / Canvas / CanvasMaintainer.cp < prev    next >
Text File  |  2000-06-23  |  850b  |  54 lines

  1. // CanvasMaintainer.cp
  2.  
  3. #ifndef CanvasMaintainer_h
  4. #include "CanvasMaintainer.h"
  5. #endif
  6. #ifndef Canvas_h
  7. #include "Canvas.h"
  8. #endif
  9. #ifndef GrafPortObject_h
  10. #include "GrafPortObject.h"
  11. #endif
  12. #ifndef QuickDrawUser_h
  13. #include "QuickDrawUser.h"
  14. #endif
  15.  
  16. const Canvas *CanvasMaintainer::current = 0;
  17.  
  18. CanvasMaintainer::~CanvasMaintainer()
  19.   {
  20.     if ( current == old )
  21.         return;
  22.     
  23.     if ( old == 0 )
  24.         QuickDrawUser().NoPort().BeCurrent();
  25.      else
  26.       {
  27.         old->Port().BeCurrent();
  28.         SetClip( old->Clip() );
  29.       }
  30.     
  31.     current = old;
  32.   }
  33.  
  34. void CanvasMaintainer::Use( const Canvas& toUse )
  35.   {
  36.     Assert( toUse.HasPort() );
  37.     
  38.     if ( &toUse == current )
  39.         return;
  40.     
  41.     toUse.Port().BeCurrent();
  42.     SetClip( toUse.Clip() );
  43.     current = &toUse;
  44.   }
  45.  
  46. void CanvasMaintainer::UseNone()
  47.   {
  48.     if ( current == 0 )
  49.         return;
  50.     
  51.     QuickDrawUser().NoPort().BeCurrent();
  52.     current = 0;
  53.   }
  54.